// Package sysin
// @Link  https://github.com/bufanyun/hotgo
// @Copyright  Copyright (c) 2025 HotGo CLI
// @Author  Ms <133814250@qq.com>
// @License  https://github.com/bufanyun/hotgo/blob/master/LICENSE
// @AutoGenerate Version 2.15.11
package sysin

import (
	"context"
	"hotgo/internal/library/hgorm/hook"
	"hotgo/internal/model/entity"
	"hotgo/internal/model/input/form"

	"github.com/gogf/gf/v2/os/gtime"
)

// AuctionHomeUpdateFields 修改主页显示时间字段过滤
type AuctionHomeUpdateFields struct {
	Start     *gtime.Time `json:"start"     dc:"开始时间点"`
	StartTime *gtime.Time `json:"startTime" dc:"开始时间"`
	EndTime   *gtime.Time `json:"endTime"   dc:"结束时间"`
	UpdatedBy int64       `json:"updatedBy" dc:"更新人"`
}

// AuctionHomeInsertFields 新增主页显示时间字段过滤
type AuctionHomeInsertFields struct {
	Start     *gtime.Time `json:"start"     dc:"开始时间点"`
	StartTime *gtime.Time `json:"startTime" dc:"开始时间"`
	EndTime   *gtime.Time `json:"endTime"   dc:"结束时间"`
	CreatedBy int64       `json:"createdBy" dc:"创建人"`
}

// AuctionHomeEditInp 修改/新增主页显示时间
type AuctionHomeEditInp struct {
	entity.AuctionHome
}

func (in *AuctionHomeEditInp) Filter(ctx context.Context) (err error) {

	return
}

type AuctionHomeEditModel struct{}

// AuctionHomeDeleteInp 删除主页显示时间
type AuctionHomeDeleteInp struct {
	Id interface{} `json:"id" v:"required#序号不能为空" dc:"序号"`
}

func (in *AuctionHomeDeleteInp) Filter(ctx context.Context) (err error) {
	return
}

type AuctionHomeDeleteModel struct{}

// AuctionHomeViewInp 获取指定主页显示时间信息
type AuctionHomeViewInp struct {
	Id int64 `json:"id" v:"required#序号不能为空" dc:"序号"`
}

func (in *AuctionHomeViewInp) Filter(ctx context.Context) (err error) {
	return
}

type AuctionHomeViewModel struct {
	entity.AuctionHome
	CreatedBySumma *hook.MemberSumma `json:"createdBySumma" dc:"创建人摘要信息"`
	UpdatedBySumma *hook.MemberSumma `json:"updatedBySumma" dc:"更新人摘要信息"`
}

// AuctionHomeListInp 获取主页显示时间列表
type AuctionHomeListInp struct {
	form.PageReq
	Id        int64         `json:"id"        dc:"序号"`
	Start     *gtime.Time   `json:"start"     dc:"开始时间点"`
	CreatedAt []*gtime.Time `json:"createdAt" dc:"创建时间"`
}

func (in *AuctionHomeListInp) Filter(ctx context.Context) (err error) {
	return
}

type AuctionHomeListModel struct {
	Id             int64             `json:"id"             dc:"序号"`
	Start          *gtime.Time       `json:"start"          dc:"开始时间点"`
	StartTime      *gtime.Time       `json:"startTime"      dc:"开始时间"`
	EndTime        *gtime.Time       `json:"endTime"        dc:"结束时间"`
	CreatedAt      *gtime.Time       `json:"createdAt"      dc:"创建时间"`
	CreatedBy      int64             `json:"createdBy"      dc:"创建人"`
	CreatedBySumma *hook.MemberSumma `json:"createdBySumma" dc:"创建人摘要信息"`
	UpdatedAt      *gtime.Time       `json:"updatedAt"      dc:"更新时间"`
	UpdatedBy      int64             `json:"updatedBy"      dc:"更新人"`
	UpdatedBySumma *hook.MemberSumma `json:"updatedBySumma" dc:"更新人摘要信息"`
}

// AuctionHomeExportModel 导出主页显示时间
type AuctionHomeExportModel struct {
	Id        int64       `json:"id"        dc:"序号"`
	Start     *gtime.Time `json:"start"     dc:"开始时间点"`
	StartTime *gtime.Time `json:"startTime" dc:"开始时间"`
	EndTime   *gtime.Time `json:"endTime"   dc:"结束时间"`
	CreatedAt *gtime.Time `json:"createdAt" dc:"创建时间"`
	CreatedBy int64       `json:"createdBy" dc:"创建人"`
	UpdatedAt *gtime.Time `json:"updatedAt" dc:"更新时间"`
	UpdatedBy int64       `json:"updatedBy" dc:"更新人"`
}

type AuctionHomeApiListModel struct {
	AuctionHomeListModel
	ServerTime *gtime.Time `json:"serverTime" dc:"服务器时间"`
}
